#include <iostream>
using namespace std;

template<class _T1, class _T2>
struct _pair
{
	_T1 first;
	_T2 second;

	_pair() :first(), second() {}
	_pair(const _T1& _a, const _T2& _b) :first(_a), second(_b) {}
	template<class _U1, class _U2>
	_pair(const _pair<_U1, _U2>& _p) : first(_p.first), second(_p.second) {}
};

int main()
{
	pair<int, double>p1;
	pair<string, int>p2("this", 10);
	pair<int, int>p3(pair<char, char>('a', 'b'));
	pair<int, string>p4 = make_pair(200, "hello");
	cout << p1.first << "," << p1.second << endl;
	cout << p2.first << "," << p2.second << endl;
	cout << p3.first << "," << p3.second << endl;
	cout << p4.first << "," << p4.second << endl;

	return 0;
}